<?php
/*
 * @titulo: aux-new
 */

function clear_filename($oldfilename) {
  $oldfilename = strtolower($oldfilename);
  $mit = array(',', ' ', '&', '?', '!', '"', "'", '+', '%', '=', '(', ')', '*');
  $oldfilename = str_replace($mit, '-', $oldfilename);
  $mit = array('------', '-----', '----', '---', '--');
  $oldfilename = str_replace($mit, '-', $oldfilename);
  $mit = array('á', 'é', 'í', 'ó', 'ö', 'ő', 'ü', 'ű', 'ú', 'Á', 'É', 'Í', 'Ó', 'Ö', 'Ő', 'Ü', 'Ű', 'Ú');
  $mire = array('a', 'e', 'i', 'o', 'o', 'o', 'u', 'u', 'u', 'a', 'e', 'i', 'o', 'o', 'o', 'u', 'u', 'u');
  $oldfilename = str_replace($mit, $mire, $oldfilename);
  return $oldfilename;
}

function fichero_antiguo($file, $horas){
  return ((time() - filemtime($file)) > ($horas * 60*60));
}

//@pendiente: mejorar con die esta subrutina
function fichero_borra_directorio_recursivo($path, $horas = -1) {
  if (is_dir($path)) { 
    $path = rtrim($path, '/') . '/';
    $handle = opendir($path);
    for (; false !== ($file = readdir($handle));)
      if ($file != "." and $file != "..") {
        $fullpath = $path . $file;
        if (is_dir($fullpath)) {
          fichero_borra_directorio_recursivo($fullpath);
          if (fichero_antiguo($fullpath, $horas)) {
            rmdir($fullpath);
          }
        } else
        if (fichero_antiguo($fullpath, $horas)) {
          unlink($fullpath);
        }
      }
    closedir($handle);
  }
  return true;
}

function fichero_borra_directorio_contenido($pdir) {
  @is_dir($pdir)or  die('Error: No existe direcotorio para borrar el contenido: '. $pdir);
  foreach (glob($pdir . "/*.*") as $filename) {
    unlink($filename) or die ('Error: No puedo borrar el archivo: ' . $filename);
  }
  return TRUE;
}

function fichero_copia_archivos($pdir,$mask, $ptodir){
  @is_dir($pdir) or die('Error: Directorio origen no existe: '. $pdir); 
  foreach (glob($pdir . '/'.$mask) as $filename) {
    copy($filename, $ptodir.'/'. fichero_extrae_nombre($filename)) or die('Errro: No puedo copiar el fichero: ' . $ptodir);
  }
  return true;
}

function fichero_directorio_espejo($p_origen, $p_destino){
  if (@is_dir($p_destino)){
    fichero_borra_directorio_contenido($p_destino);
  }else{
    @mkdir($p_destino, 0777, TRUE) or die ('Error: No puedeo crear el directorio destino: ' . $p_destino);
  }
  if (@is_dir($p_origen)){
    fichero_copia_archivos($p_origen, '*.*', $p_destino);
  }
  return true;
}

function fichero_extrae_extension($p_file){
  $s_rsl = pathinfo($p_file, PATHINFO_EXTENSION);
  return $s_rsl;
}

function fichero_extrae_nombre_solo($p_file){
  $s_rsl = pathinfo($p_file,PATHINFO_FILENAME);
  return $s_rsl;
}

function fichero_extrae_nombre($p_file){
  $s_rsl = pathinfo($p_file, PATHINFO_BASENAME );
  return $s_rsl;
}
 
function fichero_extrae_directorio($p_file){
  $s_rsl = pathinfo($p_file, PATHINFO_DIRNAME);
  return $s_rsl;  
}

//lee direcorio teniendoen cuenta la mascara
function fichero_directorio_lee($p_dir, $p_masc, $con_path= TRUE){
  $output= Array();
  if (@is_dir($p_dir)){
    foreach (glob($p_dir. '/' . $p_masc, GLOB_BRACE) as $filename){
      $output[]= $con_path ? $filename : fichero_extrae_nombre($filename);
    }
    return $output;
  }
  return false;
}

function fichero_extrae_tipo_mini($fichero){
  $doc_ext= strtoupper(fichero_extrae_extension($fichero));
  switch ($doc_ext){
    case 'ODT':
      $mini= 'images/word.gif';
      $class= 'doc_odt';
      break;
    case 'DOC':
      $mini= 'images/word.gif';
      $class= 'doc_doc';
      break;
    case 'DOCX':
      $mini= 'images/word.gif';
      $class= 'doc_docx';
      break;
    case 'PDF':
      $mini= 'images/pdf.gif' ;
      $class= 'doc_pdf';
      break;
    case 'ZIP':
      $mini= 'images/zip.png' ;
      $class= 'doc_zip';
      break;      
    default:
        break;
  };
  $out= Array();
  $out['class']= $class;
  $out['mini']= $mini; 
  return $out;
}


?>
